ACM、Route53、ALBの連携
こんにちは、クラスメソッドコリアのヌヌです。 今回はACM、Route53、ALBの連携についてお話しします。
はじめに
構築順番は下の通りです。
- ALBの作成 ー> 今回の主題
- ACM、Route53、ALBの連携 ー> 今回の主題
- ALB高級リクエストルーティング機能利用
準備
- 2台のEC2(異なるAZの)とALB
- Route53に登録するドメイン ー> 今回の主題
使用技術スタック
- ACM
- Route53
- ALB(Application Load Balanacer)
- EC2
事前準備
ドメイン取得
ACMを利用しるためには、まずドメインが必要です。Amazon Route53でドメイン購入ができますが、他のドメインサービスを利用して無料ドメインを取得できる方法もあります。
色々な無料ドメインを取得できるところはありますが、私は「freenom」というところを利用しました。他の無料ドメインサービスを利用しても構いません。
ドメインをRoute53に登録
Amazon Route53は可用性と拡張性に優れたDNSサービスです。Route53を使って取得したドメインを登録し、AWSの色んなサービスと連携できます。
無料で取得したドメインを登録するため、Route53でホストゾーンを作成してみましょう。
(コンソール画面: Route53 → ホストゾーン -> ホストゾーン作成)
ドメインと説明を書き、タイプはパブリックホストゾーンでホストゾーンの作成を完了します。
生成できたホストゾーンの内容を見ると4つの値があるNSレコードが確認できます。(NSはNameServerの略)
その値を以前のドメインを取得したサイトの管理ページで登録することでACMを利用する準備は終わりました。
ACMで認証書リクエスト
ACMは AWS Certificate ManagerはAWSが提供しているSSL/TLS認証書を生成・管理・デプロイできるサービスです。この認証書がなければHTTPS接続ができないです。
SSL/TLS認証書を発給するためにはかなりの手数・費用がかかります。しかし、ACMを利用したら無料で簡単に認証書の発給ができます。
注意点
CloudFrontなどのサービスを利用するためには、us-east-1リージョンで発給された認証書しか使えません。しかし、今回はCloudFrontを使わないのでEC2と同じリージョンで認証書をリクエストします。
認証書リクエスト
(コンソール画面: Certificate Manager → 認証書のリクエスト → パブリック認証書のリクエスト選択)
取得したドメインを入力します。「*.freeget.ml」はサブドメインのことを意味します。
次に認証方法は「DNSの検証」を選んでください。選択事項のタグは好きなようにします。
設定が終わったら確認とリクエストをします。
リクエストを検討中の画面でドメインが書いてあるところ(赤)を押すと、Route53でCNAMEレコードを追加するための情報が出ます。「Route53でのレコードの作成」ボタンをクリックすると自動的にレコードが作成できます。
認証書の発給までは遅ければ30分ほどの時間が必要ですので待ってください。
ALB設定
リスナー追加
HTTPS接続ができるためにはALBにHTTPSリスナーの追加が必要です。
(コンソール画面: EC2 → ロードべランサー → リスナーの追加)
「プロトコル:ポート」はHTTPS:443を選択します。
「デフォルトアクション」は転送先を選択、作っておいたターゲットグループを選択します。ALBはHTTPSでくるトラフィックに対して、指定したターゲットグループにトラフィックを分散します。
「セキュリティーポリシー」は自動的に選ばれます。
「SSL認証書」はACMからの認証書を選択することでリスナーの追加は済みます。
Route53にALBのレコード追加
(コンソール画面: Route53 →ホストゾーン→ホスト選択→レコードを作成)
「レコードの名」にはトラフィックをルーテェイングするドメイン・サブドメインを入力します。
「レコードタイプ」はA-IPv4dでIPv4形式のIPアドレスを意味します。
「トラフィックのルーテェイング先」は「エイリアス」をチェックし、Application Load Balancerとリージョンを選択します。そしたらリージョンにあるロードバランサーが選べます。
確認
登録したドメインに接続してみるとロードバランサーがきちんと作動しているとこが分かります。
錠前をクリックしてみるとHTTPS接続ができ、Amazonから発給された認証書の情報を確認できます。
最後に
ここまでお疲れ様でした。次の記事にはALB高級ルーティング機能利用してみます。